package com.boot.project.admin.service;

import com.boot.project.core.model.result.ProfileResult;
import com.boot.project.core.model.system.dto.UserLoginDto;
import com.boot.project.core.model.system.dto.UserPasswordDto;

/**
 * 认证与鉴权相关的服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     * @param dto 登录信息
     */
    void login(UserLoginDto dto);

    /**
     * 根据用户的标识查找对应的权限信息
     * @return
     */
    ProfileResult profile();

    /**
     * 管理员重置用户密码，将密码重置为初始密码
     * @param userPasswordDto 操作需要的实体信息
     */
    void resetPassword(UserPasswordDto userPasswordDto);

    /**
     * 用户修改自己的密码
     * @param userPasswordDto 操作需要的实体信息
     */
    void editPassword(UserPasswordDto userPasswordDto);

    /**
     * 当用户密码为初始密码时，强制修改用户密码
     * @param userPasswordDto 操作需要的实体信息
     */
    void forceEditPassword(UserPasswordDto userPasswordDto);
}
